﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calc
{
    public partial class Form1 : Form
    {
        public string FlagOperacion = "";
        public double resultado = 0;
        public double ultimoNcargado = '0';
        public bool nuevoNumero = true;
        public bool operacionHecha = false;



        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Calculadora miCalculadora = new Calculadora();

        }
        #region BotonesNumeros
        private void btnN1_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            nuevoNumero = true;
            txtResultado.Text = txtResultado.Text + "1";

        }

        private void btnN2_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            nuevoNumero = true;
            txtResultado.Text = txtResultado.Text + "2";

        }

        private void btnN3_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            nuevoNumero = true;
            txtResultado.Text = txtResultado.Text + "3";

        }

        private void btnN4_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "4";
            nuevoNumero = true;
        }

        private void btnN5_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "5";
            nuevoNumero = true;
        }

        private void btnN6_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "6";
            nuevoNumero = true;
        }

        private void btnN7_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "7";
            nuevoNumero = true;
        }

        private void btnN8_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "8";
            nuevoNumero = true;
        }

        private void btnN9_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "9";
            nuevoNumero = true;
        }

        private void btnN0_Click(object sender, EventArgs e)
        {
            if (operacionHecha)
            {
                txtResultado.Text = "";
                operacionHecha = false;
            }
            txtResultado.Text = txtResultado.Text + "0";
            nuevoNumero = true;
        }
        #endregion

        private void btnSuma_Click(object sender, EventArgs e)
        {
            


            if (nuevoNumero)
            {
                switch (FlagOperacion)
                {
                    case "suma":
                        resultado = resultado + Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "+" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "resta":
                        resultado = resultado - Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "-" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "producto":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "":
                        resultado = resultado + Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "+" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;


                    default:
                        break;
                }
            }

            FlagOperacion = "suma";

        }

        private void Form1_Load_1(object sender, EventArgs e)
        {
            // txtResultado.Text = "0";
        }

        private void btnResta_Click(object sender, EventArgs e)
        {
            
            if (nuevoNumero)
            {
                switch (FlagOperacion)
                {
                    case "suma":
                        resultado = resultado + Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "+" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "resta":
                        resultado = resultado - Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "-" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "producto":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "": 
                        resultado = resultado - Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "-" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        
                        break;


                    default:
                        break;
                }
            }
            FlagOperacion = "resta";
        }

        private void btnProducto_Click(object sender, EventArgs e)
        {
            
            if (nuevoNumero)
            {
                switch (FlagOperacion)
                {
                    case "suma":
                        resultado = resultado + Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "+" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "resta":
                        resultado = resultado - Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "-" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "producto":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                }
            }
            FlagOperacion = "producto";
        }

        private void btnIgual_Click(object sender, EventArgs e)
        {
            if (nuevoNumero)
            {
                switch (FlagOperacion)
                {
                    case "suma":
                        resultado = resultado + Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "+" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "resta":
                        resultado = resultado - Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "-" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "producto":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                    case "":
                        resultado = resultado * Convert.ToDouble(txtResultado.Text);
                        txtNumero.Text = txtNumero.Text + "*" + txtResultado.Text;
                        nuevoNumero = false;
                        operacionHecha = true;
                        txtResultado.Text = resultado.ToString();
                        break;
                }
            }
            FlagOperacion = "";
        }
    }

}